package springfixture;

import java.util.HashMap;
import java.util.Map;

import springfixture.results.Result;
import fit.Parse;

/*
 * Copyright 2002-2005 the original author or authors.
 * 
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 * 
 *      http://www.apache.org/licenses/LICENSE-2.0
 * 
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
public class SpringActionFixture extends SpringTableFixture {

    public void doRows(Parse rows) {
        createSpringBean(rows.parts);
        super.doRows(rows.more);
    }

    protected void doStaticTable(int rows) {
        Map<String, String> properties = new HashMap<String, String>();
        for (int row = 0; row < rows; row++) {
            if (getText(row, 0).equalsIgnoreCase("enter")) {
                properties.put(getText(row, 1), getText(row, 2));
            }
            if (getText(row, 0).equalsIgnoreCase("press")) {
                Result result = springFitAdapter.handleComplexResultMethodCall(getText(
                        row, 1), properties);
                result.render(getCell(row, 1));
                properties = new HashMap<String, String>();
            }
            if (getText(row, 0).equalsIgnoreCase("check")) {
                Result result = springFitAdapter
                        .handleSingleResultMethodCallOrPropertyRead(getText(row, 1),
                                properties);
                result.render(getCell(row, 2));
                properties = new HashMap<String, String>();
            }
        }

    }

}
